home *** CD-ROM | disk | FTP | other *** search
/ Power CD / Power CD ATARI-Rechner Lieben.iso / UTILITY / ST_HERC / VIEW2.PAS < prev   
Encoding:
Pascal/Delphi Source File  |  1989-06-16  |  2.1 KB  |  110 lines

  1. Program View2;
  2.  
  3.  
  4. { Liest ein Hercules-Bild byteweise von Diskette und zeigt es am Bildschirm an }
  5.  
  6.  
  7. Const GrafBase = $B000;
  8.  
  9.  
  10. Type strg40 = string [40];
  11.  
  12.  
  13. Var SourceName : strg40;
  14.     Taste      : Char;
  15.  
  16.  
  17.  
  18.  
  19.  
  20. Procedure HGCgrafmode;
  21.  
  22. { Schaltet die Hercules-Karte in den Grafikmodus, Bildschirmseite 1 }
  23.  
  24. Const Ysync = $58;
  25.       Modus : Array [0..11] of Byte
  26.             = ($36, $2D, $2F, $07, $5B, $00, $58,
  27.                Ysync, $02, $03, $00, $00);
  28.  
  29. Var   Reg   : byte;
  30.  
  31. Begin
  32.   Port [$03BF] := 3;
  33.   For Reg := 0 to 11 do Begin
  34.                           Port [$03B4] := Reg;
  35.                           Port [$03B5] := Modus [Reg];
  36.                         End;
  37.   Inline ($BA/$BA/$03/$EC/$24/$80/$E1/$FB);
  38.   Port [$03B8] := $0A;
  39.   Port [$03BF] := $03;
  40.   FillChar (mem [GrafBase:0000], $7FFF, 0);
  41. End;
  42.  
  43.  
  44.  
  45.  
  46.  
  47. Procedure HGCtextmode;
  48.  
  49. { Schaltet die Hercules-Karte zurück in den Textmodus }
  50.  
  51. Var Register : Record
  52.                  ax, bx, cx, dx, bp,
  53.                  di, si, ds, es, flags : Integer;
  54.                End;
  55. Begin
  56.   With register do Begin
  57.                      ax := 7;
  58.                      intr ($10, Register);
  59.                    End;
  60. End;
  61.  
  62.  
  63.  
  64.  
  65.  
  66. Procedure Bild_laden (Filename : Strg40);
  67.  
  68. Const Bildgroesse = 256;
  69.  
  70. Var Bilddatei   : File of Byte;
  71.     Grafikbyte  : Byte;
  72.     I           : Integer;
  73.  
  74. Begin
  75.   Assign (Bilddatei, Filename);
  76.   {$I-}
  77.   Reset (Bilddatei);
  78.   {$I+}
  79.   If IOresult = 0 then Begin
  80.                          For I := $0000 to $7FFF do
  81.                            Begin
  82.                              Read (Bilddatei, Grafikbyte);
  83.                              Mem [GrafBase : I] := Grafikbyte;
  84.                            End;
  85.                          Close (Bilddatei);
  86.                        End;
  87. End;
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  
  95. Begin
  96.   If ParamCount = 1
  97.     then SourceName := ParamStr (1)
  98.     else Begin
  99.            ClrScr;
  100.            Write ('Geben Sie den Namen des Bildes ein: ');
  101.            Readln (SourceName);
  102.          End;
  103.   ClrScr;
  104.   HGCgrafmode;
  105.   Bild_laden (SourceName);
  106.   Repeat Until keypressed;
  107.   Read (KBD, Taste);  { Puffer leeren }
  108.   HGCtextmode;
  109. End.
  110. ə